package cc.wfu.infrastructure.persistent.dao;

import cc.wfu.infrastructure.persistent.po.ProductOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 * 商品 - 订单表 Mapper 接口
 * </p>
 *
 * @author lijiaqiang@ljq1024.cc
 * @since 2024-06-05
 */
@Mapper
public interface IProductOrderDao extends BaseMapper<ProductOrder> {

    /** 插入订单 */
    void insertOne(ProductOrder productOrder);

    /** 超时关单 */
    boolean changeOrderClose(String orderId);

    /** 查询超时订单列表 */
    List<String> queryTimeoutCloseOrderList();

    /** 查询有效期内，未接收到支付回调的订单 */
    List<String> queryNoPayNotifyOrder();

    /**
     * 订单状态；0-创建完成、1-等待发货、2-发货完成、3-系统关单
     * 支付状态；0-等待支付、1-支付完成、2-支付失败、3-放弃支付
     * 查询补货订单 -> 查询支付完成但超过3分钟仍未在等待发货的订单
     */
    List<String> queryReplenishmentOrder();

    /** 模拟发货 */
    void deliverGoods(String orderId);

    /** 查询未支付订单 */
    ProductOrder queryUnpaidOrder(ProductOrder productOrderReq);

    /** 更新订单信息 */
    void updateOrderPayInfo(ProductOrder productOrderReq);
}
